package dao;

import java.util.List;

import org.hibernate.Query;

import beans.Projeto;
import beans.ProjetoUsuario;
import beans.Usuario;

/**
 * Classe de Projeto de acesso ao banco.
 * @author tsakugawa
 */
@SuppressWarnings("unchecked")
public class ProjetoDAO extends BaseDAO{

	public List<Projeto> buscarProjetosPorUsuario(Usuario usuario)
	{
		StringBuffer sql = new StringBuffer();
		sql.append("FROM Projeto p WHERE p.idProjeto IN (SELECT pu.projetoUsuarioPK.idProjeto ");
		sql.append("FROM ProjetoUsuario pu WHERE pu.projetoUsuarioPK.loginUsuario = '");
		sql.append(usuario.getLogin());
		sql.append("')");
		Query q = getSession().createQuery(sql.toString());
		List<Projeto> projetos = (List<Projeto>)q.list();
		sessionClose();
		return projetos;
	}
	
	public Projeto buscarProjetoPorId(String idProjeto)
	{
		StringBuffer sql = new StringBuffer();
		sql.append("FROM Projeto p WHERE p.idProjeto = '");
		sql.append(idProjeto);
		sql.append("')");
		Query q = getSession().createQuery(sql.toString());
		Projeto projeto = (Projeto)q.uniqueResult();
		sessionClose();
		return projeto;
	}

	public List<ProjetoUsuario> buscarProjetoUsuarioPorProjeto(Projeto projeto)
	{
		StringBuffer sql = new StringBuffer();
		sql.append("FROM ProjetoUsuario p ");
		sql.append("WHERE p.projetoUsuarioPK.idProjeto = ?");
		Query q = getSession().createQuery(sql.toString());
		q.setInteger(0, projeto.getIdProjeto());
		List<ProjetoUsuario> projetos = q.list();
		sessionClose();
		return projetos;
	}
}
